#ifndef __SI_API_H
#define __SI_API_H

typedef enum {
	EM_BREAK = 0, 
	EM_MANUAL= 1, 
	EM_ROI   = 2,
	EM_ROI_AUTO   = 3,
	EM_WIS_MANUAL = 4,
	EM_WIS_AUTO   = 5
} eEventMovieType;

class __declspec(dllexport) SI_API {
public:
	static int	Init(const char*WSPConfigFile);
	static void	Destroy();
	//static int MakeEventMovie(eEventMovieType eventType, int breakChannelId, const char *eventTime, const char *preTriggerInMs, const char *postTriggerInMs);
	static int MakeEventMovie(eEventMovieType eventType, int eventSensorId, const char *eventServerTime, 
								const char *preTriggerInMs, const char *postTriggerInMs, __int64 timeAdjust=0, int downloadCameraCountint=-1, int downloadCameraIds[]=NULL);
	
	//static int GetAnalogReading (int channel, const char *startingTime, int offset, int count, bool bAlignToEdge, void ** valueBuffer);
	//static int GetDigitalReading(int channel, const char *startingTime, int offset, int count, bool bAlignToEdge, void ** valueBuffer);
	// ServerTimestamp - DvrTimestamp
	static __int64 GetTimeDiff(int cameraId);
	static __int64 GetTimeDiff(int cameraId, __int64 serverTime);
	
	static const char *GetErrorDescription(int errorCode);

	static void PingGDNs(int cameraId);
};
#endif // __SI_API_H
